@{
	Page.Title = "JSON Schema Store";
	Page.Description = "JSON Schemas for common JSON file formats";
	Layout = "~/_layout.cshtml";
}

<article id="schemalist">
	<h3 id="count">JSON Schemas are available for the following {0} files:</h3>

	<ul id="schemas" role="directory" data-api="/api/json/catalog.json"></ul>
</article>

<article>
	<h3 id="auto-completion">Auto completion</h3>
	<p>
		<img src="~/img/autocomplete.png" width="354" height="171" alt="JSON schema auto completion" class="left" />
		In supported JSON editors like Visual Studio and Visual Studio Code,
		schema files can offer auto-completion and validation to make sure your JSON document is correct.
	</p>

	<p>
		See <a href="http://json-schema.org/implementations.html">a list</a>
		of editors, validators and other software supporting JSON schemas.
	</p>
</article>

<article>
	<h3 id="tooltips">Tooltips</h3>
	<p>
		<img src="~/img/tooltip.png" width="411" height="98" alt="JSON schema tooltip" class="right" />
		When a JSON editor supports schemas, tooltips can help inform the user
		about the various properties and values.
	</p>
</article>

<article>
	<h3 id="api">Public API</h3>
	<p>
		<img src="/img/api.png" width="256" height="88" alt="Public API for JSON Schemas" class="left" />
		The JSON <a href="~/api/json/catalog.json">API</a> contains a list of JSON Schema files for known JSON file formats.
		Each schema file can be used in tooling such as command line validators, editor auto-completion etc.
	</p>
	<p>
		The API exposes metadata about each schema in the following format:
	</p>
<pre>
{
  "name": "bower.json",
  "description": "Bower package description file",
  "fileMatch": [ "bower.json", ".bower.json" ],
  "url": "http://schemastore.org/schemas/json/bower"
}
</pre>
	<p>
		<code>name</code>, <code>description</code> and <code>url</code> are all required properties.
		<br />
		The <code>url</code> property is an absolute URI pointing to the schema.
		It can be hosted anywhere on the web.
		<br />
		The <code>fileMatch</code> property is for specifying what known file names corresponds with
		the schema. This property is optional since not all JSON formats enforce a specific file name.
	</p>
</article>

<article>
    <h3 id="editors">Supporting editors</h3>
    <p>
        Various editors and IDEs have direct support for schemas hosted on SchemaStore.org.
    </p>

    <ul>
        <li>IntelliJ IDEA</li>
        <li>PhpStorm</li>
        <li>PyCharm</li>
        <li>Rider</li>
        <li>RubyMine</li>
        <li>Visual Studio 2013+</li>
        <li>Visual Studio Code</li>
        <li>Visual Studio for Mac</li>
        <li>WebStorm</li>
        <li>JSONBuddy</li>
    </ul>

    <p>Any schema on SchemaStore.org will automatically be synchronized to the supporting editors.</p>
</article>

<article>
    <h3 id="ci">Supporting Continuous Integration tools</h3>
    <p>
        CI/CD applications can detect all JSON and YAML files and validate them if a matching schema is found on SchemaStore.org
    </p>

    <ul>
        <li><a href="https://nvuillam.github.io/mega-linter/" target="_blank">Mega-Linter</a></li>
    </ul>
</article>

<article>
    <h3 id="contribute">Contribute</h3>
    <p>
        <img src="/img/octocat.png" width="250" height="208" alt="Hosted on GitHub" class="right" />
        The goal of this API is to include schemas for all commonly
        known JSON file formats. To do that we encourage contributions in terms of new schemas,
        modifications and test files.
    </p>

    <p>
        SchemaStore.org is owned by the community and we have yet to turn down a pull request. Even if
        you're new to JSON Schemas, please submit new schemas anyway. We have many contributors that
        will help turn the schemas into perfection.
    </p>
</article>
